Always generate composefs blob, don't enable runtime by default
authorColin Walters <walters@verbum.org>
Thu, 9 Jan 2025 15:55:27 +0000 (10:55 -0500)
committerColin Walters <walters@verbum.org>
Fri, 10 Jan 2025 13:04:50 +0000 (08:04 -0500)
commit20ff0865c770d1f69b2505a2249d4cc8bd5371cc
tree6192e3c135fe840a289e36fff303e682600d38ea
parent8049711e5c7ffe2b1f5b039ca82c711f004b0d0b
Always generate composefs blob, don't enable runtime by default

Followup to https://github.com/ostreedev/ostree/pull/3353/commits/9a0acd7249bb0c7f55c2bf56e5073902cd60038b

Basically our composefs enablement flag has long had a tension between
trying to do two things:

- Enable generating the composefs blob (at deployment time)
- Enable at runtime in prepare-root

And we've hit issues in "ratcheting" enabling composefs
across upgrades because of this.

This change builds on the previous one, and now it's really
simple to talk about:

- If composefs is enabled at build time, we *always*
  generate a composefs blob at deplyment time
- Configuring the prepare-root config now mostly
  only affects the runtime state.

There is one detail though: in order to handle the
verity requirement at deploy time, we do still parse
the config then.

But for the basic "is composefs enabled at all at runtime"
that is now fully keyed off the config, not the build time
or (worse) whether the deployment happened to have a composefs
blob.

For users who want composefs on, they need to do so in the base
image configuration.

Signed-off-by: Colin Walters <walters@verbum.org>
docs/composefs.md
man/ostree-prepare-root.xml
src/libostree/ostree-sysroot-deploy.c
src/libotcore/otcore-prepare-root.c
tests/test-admin-deploy-composefs.sh